home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 23 / Amiga Format AFCD23 (Feb 1998, Issue 107).iso / +look_here_1st!+ / reader_requests / alienbreed3d2 / cheesesauce / wallchunk.s < prev    next >
Text File  |  1997-11-28  |  4KB  |  293 lines

  1.  
  2.  
  3. RELEASEWALLMEM:
  4.  move.l #walltiles,a0
  5.  move.l #wallchunkdata,a5
  6. relmem:
  7.  move.l 4(a5),d0
  8.  beq.s relall
  9.  
  10.  move.l (a0),d1
  11.  beq.s notthismem
  12.  
  13.  move.l d1,a1
  14.  move.l 4.w,a6
  15.  movem.l a0/a5,-(a7)
  16.  jsr -210(a6)
  17.  movem.l (a7)+,a0/a5
  18.  
  19.  
  20. notthismem:
  21.  addq #8,a5
  22.  addq #4,a0
  23.  bra.s relmem
  24.  
  25. relall:
  26.  rts
  27.  
  28. LOADWALLS:
  29.  
  30. **************************************
  31.  
  32. * New loading system:
  33. * Send each filename to a 'server' along with
  34. * addresses for the return values (pos,len)
  35. * then call FLUSHQUEUE, which actually loads
  36. * the files in...
  37.  
  38.  move.l #walltiles,a0
  39.  moveq #39,d7
  40. emptywalls:
  41.  move.l #0,(a0)+
  42.  dbra d7,emptywalls
  43.  
  44.  move.l #walltiles,a4
  45.  move.l LINKFILE,a3
  46.  add.l #WallGFXNames,a3
  47.  move.l #0,TYPEOFMEM
  48.  
  49. loademin:
  50.  move.l (a3),d0
  51.  beq loadedall
  52.  
  53.  move.l a3,a0
  54. .findend:
  55.  tst.b (a0)+
  56.  bne.s .findend
  57.  
  58.  move.b #0,-(a0) ;0
  59.  move.b #0,-(a0) ;D
  60.  move.b #0,-(a0) ;A
  61.  move.b #0,-(a0) ;W
  62.  move.b #0,-(a0) ;6
  63.  move.b #0,-(a0) ;5
  64.  move.b #0,-(a0) ;2
  65.  
  66.  move.b #'w',(a0)+
  67.  move.b #'a',(a0)+
  68.  move.b #'d',(a0)+
  69.  
  70.  move.l a3,a0
  71.  move.l a4,d0    ; address to put start pos
  72.  move.l #0,d1
  73.  
  74.  jsr QUEUEFILE
  75.  
  76.  addq #4,a4
  77.  
  78.  adda.w #64,a3
  79.  bra loademin
  80.  
  81. loadedall:
  82.  
  83.  rts
  84.  
  85. **************************************
  86.  
  87. ; move.l #walltiles,a0
  88. ; moveq #39,d7
  89. ;emptywalls:
  90. ; move.l #0,(a0)+
  91. ; dbra d7,emptywalls
  92. ;
  93. ; move.l #walltiles,a4
  94. ; move.l LINKFILE,a3
  95. ; add.l #WallGFXNames,a3
  96. ; move.l #0,TYPEOFMEM
  97. ;loademin:
  98. ; move.l (a3),d0
  99. ; beq loadedall
  100.  
  101. ; movem.l a4/a3,-(a7)
  102.  
  103. ; move.l a3,a0
  104. ; jsr LOADAFILE
  105.  
  106. ; movem.l (a7)+,a4/a3
  107.  
  108. ; move.l d0,(a4)+
  109. ; move.l d1,4(a3)
  110.  
  111. ; adda.w #64,a3
  112. ; bra loademin
  113.  
  114. ;loadedall:
  115. ; PRSDN
  116. ; rts
  117.  
  118. handle: dc.l 0
  119.  
  120. UNPACKED: dc.l 0
  121.  
  122. walltiles:
  123.  ds.l 40
  124.  
  125. DEFLOADFILE:
  126. ; Load a file in and unpack it if necessary.
  127. ; Pointer to name in a0
  128. ; Returns address in d0 and length in d1
  129.  
  130.  movem.l d0-d7/a0-a6,-(a7)
  131.  bra.s intoload
  132.  
  133. LOADAFILE:
  134. ; Load a file in and unpack it if necessary.
  135. ; Pointer to name in a0
  136. ; Returns address in d0 and length in d1
  137.  
  138.  movem.l d0-d7/a0-a6,-(a7)
  139.  
  140.  move.l a0,d1
  141.  move.l doslib,a6
  142.  move.l #1005,d2
  143.  jsr -30(a6)
  144.  move.l d0,handle
  145.  
  146. intoload:
  147.  
  148.  lea fib,a5
  149.  move.l handle,d1
  150.  move.l a5,d2
  151.  move.l doslib,a6
  152.  jsr -390(a6)
  153.  move.l $7c(a5),blocklen
  154.  
  155.  move.l TYPEOFMEM,d1
  156.  move.l 4.w,a6
  157.  move.l blocklen,d0
  158.  jsr -198(a6)
  159.  
  160.  move.l d0,blockstart
  161.  
  162.  move.l doslib,a6
  163.  move.l handle,d1
  164.  move.l d0,d2
  165.  move.l blocklen,d3
  166.  jsr -42(a6)
  167.  
  168.  move.l doslib,a6
  169.  move.l handle,d1
  170.  jsr -36(a6)
  171.  
  172.  move.l blockstart,a0
  173.  move.l (a0),d0
  174.  cmp.l #'=SB=',d0
  175.  beq ITSPACKED
  176.  
  177. ; Not a packed file so just return now.
  178.  movem.l (a7)+,d0-d7/a0-a6
  179.  
  180.  move.l blockstart,d0
  181.  move.l blocklen,d1
  182.  
  183.  rts
  184.  
  185. ITSPACKED:
  186.  
  187.  move.l 4(a0),d0    ; length of unpacked file.
  188.  move.l d0,UNPACKED
  189.  move.l TYPEOFMEM,d1
  190.  move.l 4.w,a6
  191.  jsr -198(a6)
  192.  
  193.  move.l d0,unpackedstart
  194.  
  195.  move.l blockstart,d0
  196.  moveq #0,d1
  197.  move.l unpackedstart,a0
  198.  move.l LEVELDATA,a1
  199.  lea $0,a2
  200.  jsr unLHA
  201.  
  202.  move.l blockstart,d1
  203.  move.l d1,a1
  204.  move.l blocklen,d0
  205.  move.l 4.w,a6
  206.  jsr -210(a6)
  207.  movem.l (a7)+,d0-d7/a0-a6
  208.  
  209.  move.l unpackedstart,d0
  210.  move.l UNPACKED,d1
  211.  
  212.  rts
  213.  
  214.  
  215. unpackedstart:
  216.  dc.l 0
  217.  
  218. wallchunkdata:
  219.  dc.l GreenMechanicNAME,18560
  220.  dc.l BlueGreyMetalNAME,13056
  221.  dc.l TechnoDetailNAME,13056
  222.  dc.l BlueStoneNAME,10368
  223.  dc.l RedAlertNAME,7552
  224.  dc.l RockNAME,10368
  225.  dc.l scummyNAME,24064
  226.  dc.l stairfrontsNAME,2400
  227.  dc.l bigdoorNAME,13056
  228.  dc.l redrockNAME,13056
  229.  dc.l dirtNAME,24064
  230.  dc.l SwitchesNAME,3456
  231.  dc.l shinyNAME,24064
  232.  dc.l bluemechNAME,15744
  233.  dc.l 0,0
  234.  
  235. GreenMechanicNAME:
  236.  dc.b 'AB3D1:includes/walls/greenmechanic.256wad'
  237.  dc.b 0 
  238.  even
  239. BlueGreyMetalNAME:
  240.  dc.b 'AB3D1:includes/walls/bluegreymetal.256wad'
  241.  dc.b 0
  242.  even
  243. TechnoDetailNAME:
  244.  dc.b 'AB3D1:includes/walls/technodetail.256wad'
  245.  dc.b 0
  246.  even
  247. BlueStoneNAME:
  248.  dc.b 'AB3D1:includes/walls/bluestone.256wad'
  249.  dc.b 0
  250.  even
  251. RedAlertNAME:
  252.  dc.b 'AB3D1:includes/walls/redalert.256wad'
  253.  dc.b 0
  254.  even
  255. RockNAME:
  256.  dc.b 'AB3D1:includes/walls/rock.256wad'
  257.  dc.b 0
  258.  even
  259. scummyNAME:
  260.  dc.b 'AB3D1:includes/walls/scummy.256wad'
  261.  dc.b 0
  262.  even
  263. stairfrontsNAME:
  264.  dc.b 'AB3D1:includes/walls/stairfronts.256wad'
  265.  dc.b 0
  266.  even
  267. bigdoorNAME:
  268.  dc.b 'AB3D1:includes/walls/bigdoor.256wad'
  269.  dc.b 0
  270.  even
  271. redrockNAME:
  272.  dc.b 'AB3D1:includes/walls/redrock.256wad'
  273.  dc.b 0
  274.  even
  275. dirtNAME:
  276.  dc.b 'AB3D1:includes/walls/dirt.256wad'
  277.  dc.b 0
  278.  even
  279. SwitchesNAME:
  280.  dc.b 'AB3D1:includes/walls/switches.256wad'
  281.  dc.b 0
  282.  even 
  283. shinyNAME:
  284.  dc.b 'AB3D1:includes/walls/shinymetal.256wad'
  285.  dc.b 0
  286.  even
  287. bluemechNAME:
  288.  dc.b 'AB3D1:includes/walls/bluemechanic.256wad'
  289.  dc.b 0
  290.  even
  291.  
  292.